---------- END ----------
开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。
点击“开发者技术前线”,选择“星标🔝”
13:21 在看|星标|留言, 真爱
来源:开发者技术前线
作者:白哥 | 编辑 :可可
本文是博本人在知乎上获5K赞的回答
每年都有无数年轻的大学生,加入互联网,尤其是学习编程,加入软件行业。他们在学校里学过编程,参加过实验室实践,但是对这个行业的现状却一无所知,
我今天介绍这个行业的一些实际情况。这几年自己在技术博客沉淀很多技术。其他方面也算成功,至少和同龄人和自己起点一样本科生来说,作为过来人有几点说一下:
下文中的前四点主要针对三年经验以内的。后面的几点写给3年到8年的同行,最后写给包括自己的给所有的同行。
记得只看到有人说:网上的“大牛”多半不靠谱。
“其一是真正的大牛没时间混迹在网上做人生导师,天天讲道理,整天出现在你Timeline里的人要么半吊子水货,要么另有所图(赚钱智商税)(我黑起人来连自己也不放过)
其二相比较入门晚的你 这些大牛算是大牛,但他的经验对你未必有用。大牛说我学 Python 也就翻了下基本语法,当天就上项目开干了。大牛说我从不看基础知识,因为大牛天天忙着公司架构, 哪来机会看基础!但你却需要先打好需要基础。
2.少说废话,多写代码废话有很多种
其一:程序员届最多的大概就是整理讨论哪个语言/框架/平台/技术好,准程序员则喜欢问,我是不是应该学Java Python php……学了是不是有用之类。我学习什么技术好?技术讨论并不完全无意义,但在你打好计算机基础、数据结构,熟练掌握至少一门语言、开发过一个能看的项目之前,这些讨论对你来说就是浪费时间的废话,而不是今天跟风学这个,明天又听人说那个好。不要等毕业的时候说出XX技术学校没教过,所以我不会这种话。
其二:参加工作的人则喜欢讨论自己所在公司(同行)的技术水平。类似: "xxx企业技术垃圾,xxx企业框架老旧,xxx公司我是做保底的,不然我不会去的",尤其我还看到这种言论竟然出自阿里P7(技术专家),我只能说一家公司的技术不是一个人沉淀的,在你没有开发出一个行业著名框架或者(语言)之前,是没资格讨论任何一个人和一个企业的技术。
有这时间多写点代码,刷刷算法题,找点项目做做,找不到就从自己日常身边找点需求去用代码实现。不要说你觉得没有什么可写的,如果是这样,那你要反思下自己适不适合编程这条路。
我能告诉你的是 接下来几年内不会算法是万万不行的。不要说我进一家公司用不到这些话 ,如果你拒绝学。那没必要做程序员了。
华为 ,头条面试对算法要求越来越严格 ,或许几年后全民算法。不代表我本人对算法有什么兴趣,只是市场需要。
3.做一个程序员,不是码农码农的工作和搬砖没什么区别,因为每天做的东西无任何累积,类似出一天工,赚一天钱,如果不出工就没钱赚。 大部分码农 有问题了就东修西补,程序能跑通就不错,只会用教过的一两种技术。
4.短期不要高估自己,长期不要低估自己
绝大多数人都会出现的一个误区就是“短期高估自己,长期低估自己”。
除非你天资聪慧,否则别想着大一就捣鼓出什么牛逼程序来一鸣惊人。学编程的过程会经历数个瓶颈期,中间你也许会数次感到万分绝望,甚至开始怀疑人生。
但你要相信,只要坚持写下去,瓶颈总会突破,成为一个超越平均水准的职业程序员是没有什么大问题的。
商业公司最关心的(或者说唯一在乎的)事情,就是增加收入、降低成本。因此,它们实际上需要的不是程序员,而是能够帮助它们增加收入、降低成本的人。
开发优美的软件,解决技术难题,编写没有 bug 的代码,这些都不是商业公司的目的。它们雇佣你,是为了让你帮它们完成某个可以增加收入、降低成本的项目,而不是为了让你追求个人的软件成就。
你对于公司的唯一价值,就在于能多大程度上为它们增加收入、降低成本。
这就是为什么阿里p8拿不到业务就要被排期滚蛋的情况 ,没有业务就没有机会产出,没产出就没有利润,那么技术好坏, 只决定了你不容易被裁的几率而已。
好的程序员专注于为公司带来价值很多公司的开发经理(技术经理)不懂技术,在他们心目中,程序员就是一群高成本的劳动力,只会在一台复杂的机器上干一些他们难懂的事情。
如果你自称为”码农”,只会写代码。当公司需要压缩成本的时候,某些经理首先就会想到裁你,因为你的工资高。
有一家公司叫 Salesforce,口号是”没有软件”,意思就是如果经理们购买了他们的服务,就不再需要别的软件管理销售业务了,也就是说,不再需要自己雇佣程序员了。
而不错的做法,你应该把自己描述成与增加收入、降低成本有关系的人,比如”xx产品的开发者”或”推进者”。 有一个 Google Adsense 程序员的自我介绍,是这样写的:”Google 公司97%的收入,与我的代码有关”。一看就很牛逼啊!
7 不要给自己设限年轻学生经常会问,应该选择哪种语言或平台?Java 是不是比 python 容易找工作?过分强调某一种语言或平台,都是不必要的。如果你把自己限定为 Java 程序员或 .C++程序员,你就已经输了,因为首先你不应该自称为码农(理由见上一点),其次这种限定使得你自动被排除在世界上大多数编程工作之外)如果你一毕业就加入了一家创业公司,最可能的结果是,接下来几年你都工作得非常辛苦,然后公司悲惨地失败了,你失业了,不得不又去另一家创业公司工作。
如果你真的想去创业公司,应该首先找一家大公司干上几年,攒一点钱,积累一些经验,然后精心挑选一家创业公司,再去做一些事,那么你开展起来会轻松的很多。
在创业公司工作,一般情况下,你遇到的都是创业者。他们大多数人没有能力在两年后带你;
而在大公司工作,你遇到的都是其他公司优秀选拔上来的人。技术先不说好不好,但不会和你撕逼。
10 沟通技能是最重要的职业技能前面说过,工程师被雇佣,不是因为会编程本身,而是因为能够创造商业价值。所以,你得让人们相信你能创造价值,这是帮助你找到工作的最重要的能力。这种能力与你真的写出怎样优秀的代码,实际上联系不是很紧密。很多情况下,你向别人展示的是对你能力的一种期许, 也就是所谓的潜力,而不是你当前的能力。所以不要时刻说技术,因为技术只是工作的一种手段,能创造的价值才是你的核心武器。关注技术的同时 ,不要忘了关注自己自身能力的提高。这一行工作的人都应该拥有面对时刻失业的准备,因为大部分的的危机来自于把体制外的工作当成了体制内。11 写在最后 相信自己,尊重自己的职业不要自称「 程序狗」,尊重自己
基础学扎实,学算法,不要追求热门
不要迷信编程语言,不要陷入编程语言的口水战争
多写有质量的代码 ,别瞎折腾实践
普通人为了达成某个目标,需要舍弃一些东西,舍得舍得,有舍才有得。
职业生涯早期有机会去大公司大平台,还是要去大公司见见世面。很多事情不是一蹴而就的,如果能力不够可以采取曲线救国,只要最终能达到目的就好。
技术是根本,没有技术你就没有钱。技术又不是全部,因为你很难搞一辈子技术。
眼光和机遇很重要,机遇可遇不可求,但是机遇来了,眼光不够没有做出相对准确的预测,做错了选择,那也是很伤。
学历和起点不是问题,其实能力和眼界才是程序员核心竞争力,大厂不一定就是铁饭碗。
人都需要学习,并能不断敢于挑战自己,才能离成功几率越大。
---------- END ----------
开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。